﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System.IO;
using Skyhook.Core.Graphics;
using Skyhook.Core;

//Формат файла
//4 байта - сигнатура SHIC - Skyhook Image Collection
//4 байта - количество изображений
//4 байта х количество изображений - адреса каждого изображения в файле

namespace Skyhook.Resources
{
    public class ImageCollection : Resource
    {
        const string FileExtension = ".sic";

        string Name = "NULL_RESOURCE";

        Texture2D _Texture = null;
        Rectangle[] FrameRects = null;
        Vector2[] CenterPoints = null;

        public ImageCollection()
        {
        }

        internal override void LoadFromFile(string assetname)
        {
            string filename = assetname + FileExtension;
            Name = assetname;

            ImageCollectionLoader loader = new ImageCollectionLoader();
            loader.LoadFromFile(filename, out _Texture, out FrameRects, out CenterPoints);
        }

        public override bool IsEmpty
        {
            get
            {
                return (_Texture == null);
            }
        }

        public override string UID
        {
            get
            {
                return Name;
            }
        }

        public Texture2D Texture
        {
            get
            {
                return _Texture;
            }
        }

        public Rectangle GetFrameRect(int i)
        {
            return FrameRects[i];
        }

        public Vector2 GetCenterPoint(int i)
        {
            return CenterPoints[i];
        }

        public int FramesCount
        {
            get
            {
                return FrameRects.Length;
            }
        }
    }
}
